R语言 使用Dplyr包删除多列数据 |
您所在的位置:网站首页 › r语言 grepl › R语言 使用Dplyr包删除多列数据 |
R语言 使用Dplyr包删除多列数据
在这篇文章中,我们将讨论如何使用R编程语言中的dplyr包删除多列。 使用中的数据集 。 通过使用 列名 来 删除多列我们可以用select()方法通过列名删除一列 语法: select(dataframe,-c(column_name1,column_name2,.,column_name n) 其中,dataframe是输入的数据框架,-c(column_names)是要删除的列的名称集合。 例子: R程序通过列名删除多个列 # load the library library(dplyr) # create dataframe with 3 columns id, # name and address data1=data.frame(id=c(1,2,3,4,5,6,7,1,4,2), name=c('sravan','ojaswi','bobby', 'gnanesh','rohith','pinkey', 'dhanush','sravan','gnanesh', 'ojaswi'), address=c('hyd','hyd','ponnur','tenali', 'vijayawada','vijayawada','guntur', 'hyd','tenali','hyd')) # remove name and id column print(select(data1,-c(id,name))) # remove name and address column print(select(data1,-c(address,name))) # remove all column print(select(data1,-c(address,name,id)))输出 通过使用列索引删除多列我们可以用select()方法通过它的列索引/位置来删除一个列。索引从1开始。 语法 select(dataframe,-c(column_index1,column_index2,.,column_index n) 其中,dataframe是输入的数据框架,c(column_indexes)是要删除的列的位置。 示例: R程序按位置删除多列 # load the library library(dplyr) # create dataframe with 3 columns # id,name and address data1=data.frame(id=c(1,2,3,4,5,6,7,1,4,2), name=c('sravan','ojaswi','bobby', 'gnanesh','rohith','pinkey', 'dhanush','sravan','gnanesh', 'ojaswi'), address=c('hyd','hyd','ponnur','tenali', 'vijayawada','vijayawada','guntur', 'hyd','tenali','hyd')) # remove name and id columns by # its position print(select(data1,-c(1,2)))输出 删除包含一个值或匹配一个模式的列让我们看看如何删除包含字符/字符串的列。 方法1:使用contains()显示包含给定子串的列,然后用 -contains() 删除包含给定子串的列。 语法 : select(dataframe,-contains('sub_string')) 这里,dataframe是输入的数据框架,sub_string是存在于将被删除的列名中的字符串。 方法2:使用matches()显示包含给定子串的列,然后 -matches() 删除包含给定子串的列 语法 : select(dataframe,-matches('sub_string')) 这里,dataframe是输入的数据框架,sub_string是存在于将被删除的列名中的字符串。 示例: 使用contains()方法删除列的R程序 # load the library library(dplyr) # create dataframe with 3 columns # id,name and address data1=data.frame(id=c(1,2,3,4,5,6,7,1,4,2), name=c('sravan','ojaswi','bobby', 'gnanesh','rohith','pinkey', 'dhanush','sravan','gnanesh', 'ojaswi'), address=c('hyd','hyd','ponnur','tenali', 'vijayawada','vijayawada','guntur', 'hyd','tenali','hyd')) # remove column that contains na print(select(data1,-contains('na'))) # remove column that contains re print(select(data1,-contains('re')))输出 删除以特定字符开始或结束的列在这里,我们也可以根据开始和结束的字符来选择列。 starts_with() 用于返回以给定字符开始的列,而 -starts_with() 则用于删除以给定字符开始的列。语法 select(dataframe,-starts_with(‘substring’)) 其中,dataframe是输入的数据框架,substring是以它开始的字符/字符串。 ends_with() 用于返回以给定字符结束的列, -ends_with() 用于删除以给定字符结束的列。语法 select(dataframe,-ends_with(‘substring’)) 其中,dataframe是输入的数据框架,substring是以其结尾的字符/字符串。 例1: R程序删除以字符/子串开头的列 # load the library library(dplyr) # create dataframe with 3 columns # id,name and address data1=data.frame(id=c(1,2,3,4,5,6,7,1,4,2), name=c('sravan','ojaswi','bobby', 'gnanesh','rohith','pinkey', 'dhanush','sravan','gnanesh', 'ojaswi'), address=c('hyd','hyd','ponnur','tenali', 'vijayawada','vijayawada','guntur', 'hyd','tenali','hyd')) # remove column that starts with na print(select(data1,-starts_with('na'))) # remove column that starts with ad print(select(data1,-starts_with('ad')))输出 例2: 移除以字符/子串结尾的列的R程序 # load the library library(dplyr) # create dataframe with 3 columns # id,name and address data1=data.frame(id=c(1,2,3,4,5,6,7,1,4,2), name=c('sravan','ojaswi','bobby', 'gnanesh','rohith','pinkey', 'dhanush','sravan','gnanesh', 'ojaswi'), address=c('hyd','hyd','ponnur','tenali', 'vijayawada','vijayawada','guntur', 'hyd','tenali','hyd')) # remove column that ends with d print(select(data1,-ends_with('d'))) # remove column that starts with ss print(select(data1,-ends_with('ss')))输出 用正则表达式删除列名在这里,我们将根据grepl()函数中给出的模式来删除列。它将找到一个模式,并根据给定的模式删除该列。 语法 dataframe[,!grepl("mode",names(dataframe))] 这里,dataframe是输入的数据框架,pattern是要删除的列的表达式。 删除列中起始字符所在的列的模式是 语法 data[,!grepl("^letter",names(data))] 例子: R程序删除以字母开头的列 # load the library library(dplyr) # create dataframe with 3 columns # id,name and address data1=data.frame(id=c(1,2,3,4,5,6,7,1,4,2), name=c('sravan','ojaswi','bobby', 'gnanesh','rohith','pinkey', 'dhanush','sravan','gnanesh', 'ojaswi'), address=c('hyd','hyd','ponnur','tenali', 'vijayawada','vijayawada','guntur', 'hyd','tenali','hyd')) # drop column that starts with n print(data1[,!grepl("^n",names(data1))]) # remove column that starts with a print(data1[,!grepl("^a",names(data1))])输出 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |